home *** CD-ROM | disk | FTP | other *** search
- (*
- * Title: fontlist.h
- * Purpose: Routines to enumerate the fonts on the system into a tree structure
- *
- *)
-
- #ifndef __fontlist_h
- #define __fontlist_h
-
- (* -------------------------------------------------- *)
- (* Structures required *)
- (* -------------------------------------------------- *)
- type fontlist_node_ptr = ^fontlist_node;
- fontlist_node =
- record
- name : packed array[1..39] of char;
- son : fontlist_node_ptr;
- brother : fontlist_node_ptr;
- flag : integer
- end;
-
- (* As an example of a font tree structure, consider
- Corpus.Medium, Corpus.Bold, Selwyn,
- Trinity.Medium, Trinity.Bold, Trinity.Medium.Italic,
- Widget.Medium.Italic.Outline
- This will be stored in the following way: (#'s denote flag's which are TRUE)
- --+--> Corpus --+--> # Medium
- | |
- | +--> # Bold
- |
- +--> # Selwyn
- |
- +--> Trinity --+--> # Medium -----> # Italic
- | |
- | +--> # Bold
- |
- +--> Widget --+--> Medium -----> # Italic.Outline
-
- [ Brothers are connected vertically downwars, sons to their parents
- right-to-left ]
- *)
-
- (* -------------------------------------------------- *)
- (* Globals defined *)
- (* -------------------------------------------------- *)
- var font_tree : fontlist_node_ptr; extern;
-
-
-
- (* ------------------------ fontlist_list_all_fonts ------------------------
- * Description: Read in the font list into a font tree
- *
- * Parameters: BOOL system -- TRUE if System font should be included in
- * the list
- * Returns: a pointer to the start of the font tree
- * Other Info:
- *)
- function fontlist_list_all_fonts(system : boolean)
- : fontlist_node_ptr; extern;
-
- (* ------------------------ fontlist_free_font_tree ------------------------
- * Description: Free a font tree
- *
- * Parameters: fontlist_node *font_tree -- the font tree to free
- * Returns:
- * Other Info:
- *)
- procedure fontlist_free_font_tree(font_tree : fontlist_node_ptr); extern;
-
-
- #endif
-
-
- (* end fontlist.h *)
-